Load-Time Structural Reflection in Java

نویسنده

  • Shigeru Chiba
چکیده

The standard reflection API of Java provides the ability to introspect a program but not to alter program behavior. This paper presents an extension to the reflection API for addressing this limitation. Unlike other extensions enabling behavioral reflection, our extension called Javassist enables structural reflection in Java. For using a standard Java virtual machine (JVM) and avoiding a performance problem, Javassist allows structural reflection only before a class is loaded into the JVM. However, Javassist still covers various applications including a language extension emulating behavioral reflection. This paper also presents the design principles of Javassist, which distinguish Javassist from related work.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Reflection Support: Java Reflection Made Easy

Large software projects often require the ability to load and manage new code assets that were not originally available during system compilation. Moreover, testing tools need to inspect and run code components regardless of their structures. Reflection in Java supports these tasks by providing programmers with facilities to dynamically create objects, invoke methods, access fields, and perform...

متن کامل

Kava - Using Byte code Rewriting to add Behavioural Reflection to Java

Many authors have proposed using byte code rewriting as a way of adapting or extending the behaviour of Java classes. There are toolkits available that simplify this process and raise the level of abstraction above byte code. However, to the best of our knowledge, none of these toolkits provide a complete model of behavioural reflection for Java. In this paper, we describe how we have used load...

متن کامل

USENIX Association Proceedings of the 6 th USENIX Conference on Object - Oriented Technologies and Systems

Many authors have proposed using byte code rewriting as a way of adapting or extending the behaviour of Java classes. There are toolkits available that simplify this process and raise the level of abstraction above byte code. However, to the best of our knowledge, none of these toolkits provide a complete model of behavioural reflection for Java. In this paper, we describe how we have used load...

متن کامل

ntrospective-SystemC: Reflection and Introspection in System Level Design

Reflection is an increasingly important feature in software systems as evidenced by introduction of datatype reflection abilities in Java, RTTI runtime type information reflection package for C++, and reflection service in .NET environment. Since systems being designed today are supposed to self-configure, self-heal and make a lot more intelligent decisions about itself, including versioning, f...

متن کامل

Safe uniform proxies for Java

The proxy abstraction has a long-lasting tradition in object-oriented programming. From design patterns to inherent programming language support, from remote method invocations to simple forms of behavioral reflection – incarnations as well as applications of proxies are innumerable. Since version 1.3, Java supports the concept of dynamic proxy. Such an object conforms to a set of types specifi...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2000